"""
公告管理页面
封装公告管理页面的元素定位器和操作方法（如切换到公告管理）
"""
from selenium.webdriver.common.by import By
from page.base_page import BasePage
from time import sleep


class AnnouncementPage(BasePage):
    # 公告管理页面路径
    url = "/index.php?m=announcement"

    # 元素定位器（与线性用例完全对应）
    username_menu_locator = (By.XPATH, "/html/body/div[1]/div/div/div[2]/ul[2]/li[6]/a")  # 右上角用户名菜单（魏佳旭）
    announcement_manage_link_locator = (By.LINK_TEXT, "公告管理")  # 公告管理链接

    # 操作方法（与线性用例步骤对应）
    def click_username_menu(self):
        """点击右上角用户名菜单（魏佳旭）"""
        self.find_element(self.username_menu_locator).click()
        sleep(2)

    def click_announcement_manage(self):
        """点击“公告管理”链接，切换到公告管理页面"""
        self.find_element(self.announcement_manage_link_locator).click()
        sleep(2)

    def switch_to_announcement_manage(self):
        """封装完整切换流程：点击用户名菜单→点击公告管理"""
        self.click_username_menu()
        self.click_announcement_manage()